package com.funong.matrix.biz.base.dao;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.funong.matrix.biz.base.entity.SysConfigEntity;
import com.funong.matrix.biz.base.mapper.SysConfigMapper;
import com.funong.matrix.core.base.Dao;
import com.funong.matrix.core.base.FunongBaseDao;
import com.funong.matrix.core.dto.QueryDTO;
import com.funong.matrix.core.enums.IsDeletedEnum;
import org.apache.commons.lang3.StringUtils;
import org.aspectj.lang.annotation.Aspect;

/**
 * @author : NaNa
 * @since : 2023-05-19 16:29
 **/
@Aspect
@Dao
public class SysConfigDao extends FunongBaseDao<SysConfigMapper, SysConfigEntity> {
    /**
     * 菜单分页查询
     *
     * @param queryDTO 查询条件
     * @return 菜单分页结果
     */
    public IPage<SysConfigEntity> queryConfigByCondition(QueryDTO<SysConfigEntity> queryDTO) {
        SysConfigEntity configEntity = queryDTO.getCondition();
        return this.page(new Page<>(queryDTO.getPageNo(), queryDTO.getPageSize()), new LambdaQueryWrapper<SysConfigEntity>()
                .like(null != configEntity && StringUtils.isNotBlank(configEntity.getConfigName()), SysConfigEntity::getConfigName, configEntity.getConfigName())
                .eq(null != configEntity && StringUtils.isNotBlank(configEntity.getConfigKey()), SysConfigEntity::getConfigKey, configEntity.getConfigKey())
                .eq(null != configEntity && null != configEntity.getSystemId(), SysConfigEntity::getSystemId, configEntity.getSystemId())
                .eq(SysConfigEntity::getIsDeleted, IsDeletedEnum.NOT_DELETED.getValue()));
    }
}
